<?php
/**
 * Autor:   Miguel A. Zilli
 * Email:   miguelzilli@gmail.com
 */

class Predio extends AppModel {
    var $name = 'Predio';
    var $displayField = 'dom_pred';
    var $recursive='0';
    var $order=array(
        'Predio.dom_pred'=>'ASC',
        'Predio.nombre_pred'=>'ASC'
    );
    var $porDefecto=array('Predio'=>array(
            'dpto_pred'=>'00',
            'circ_pred'=>'000',
            'secc_pred'=>'00',
            'ch_pred'=>'0000',
            'qta_pred'=>'0000',
            'fracc_pred'=>'0000',
            'mz_pred'=>'0000',
            'parc_pred'=>'00000'
        ));

    var $validate = array(
        'dom_pred'=>array(
            'rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true
        ),
        'nombre_pred'=>array(
            'rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true
        ),
        'sup_pred'=>array(
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>false),
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'sup_boscosa_pred'=>array(
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>true)
        ),
        'sup_cultivable_pred'=>array(
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>true)
        ),
        'sup_ganadera_pred'=>array(
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>true)
        ),
        'lat_grados_pred'=>array(
            array('rule'=>array('comparison','<=',28),'message'=>'Debe estar entre 24&deg; y 28&deg;','allowEmpty'=>true),
            array('rule'=>array('comparison','>=',24),'message'=>'Debe estar entre 24&deg; y 28&deg;','allowEmpty'=>true),
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>true)
        ),
        'lat_min_pred'=>array(
            array('rule'=>array('comparison','<',60),'message'=>'Debe estar entre 0\' y 60\'','allowEmpty'=>true),
            array('rule'=>array('comparison','>=',0),'message'=>'Debe estar entre 0\' y 60\'','allowEmpty'=>true),
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>true)
        ),
        'lat_seg_pred'=>array(
            array('rule'=>array('comparison','<',60),'message'=>'Los segundos deben estar entre 0 y 60','allowEmpty'=>true),
            array('rule'=>array('comparison','>=',0),'message'=>'Los segundos deben estar entre 0 y 60','allowEmpty'=>true),
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>true)
        ),
        'long_grados_pred'=>array(
            array('rule'=>array('comparison','<=',63),'message'=>'Debe estar entre 58&deg; y 63&deg;','allowEmpty'=>true),
            array('rule'=>array('comparison','>=',58),'message'=>'Debe estar entre 58&deg; y 63&deg;','allowEmpty'=>true),
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>true)
        ),
        'long_min_pred'=>array(
            array('rule'=>array('comparison','<',60),'message'=>'Debe estar entre 0\' y 60\'','allowEmpty'=>true),
            array('rule'=>array('comparison','>=',0),'message'=>'Debe estar entre 0\' y 60\'','allowEmpty'=>true),
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>true)
        ),
        'long_seg_pred'=>array(
            array('rule'=>array('comparison','<',60),'message'=>'Los segundos deben estar entre 0 y 60','allowEmpty'=>true),
            array('rule'=>array('comparison','>=',0),'message'=>'Los segundos deben estar entre 0 y 60','allowEmpty'=>true),
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>true)
        ),
        'titular_pred'=>array(
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'titular_dni_pred'=>array(
            array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>false),
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'localidad_id'=>array(
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'dpto_pred'=>array(
            array('rule'=>array('between',2,2),'message'=>'Deben ser 2 dígitos.'),
            //array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>false),
            array('rule'=>'alphaNumeric','message'=>'Solo se permiten letras y números.','allowEmpty'=>false),
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'circ_pred'=>array(
            array('rule'=>array('between',3,3),'message'=>'Deben ser 3 dígitos.'),
            //array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>false),
            array('rule'=>'alphaNumeric','message'=>'Solo se permiten letras y números.','allowEmpty'=>false),
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'secc_pred'=>array(
            array('rule'=>array('between',2,2),'message'=>'Deben ser 2 dígitos.'),
            //array('rule'=>'numeric','message'=>'Solo se permiten números.','allowEmpty'=>false),
            array('rule'=>'alphaNumeric','message'=>'Solo se permiten letras y números.','allowEmpty'=>false),
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'ch_pred'=>array(
            array('rule'=>array('between',4,4),'message'=>'Deben ser 4 caracteres alfanuméricos.'),
            array('rule'=>'alphaNumeric','message'=>'Solo se permiten letras y números.','allowEmpty'=>false),
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'qta_pred'=>array(
            array('rule'=>array('between',4,4),'message'=>'Deben ser 4 caracteres alfanuméricos.'),
            array('rule'=>'alphaNumeric','message'=>'Solo se permiten letras y números.','allowEmpty'=>false),
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'fracc_pred'=>array(
            array('rule'=>array('between',4,4),'message'=>'Deben ser 4 caracteres alfanuméricos.'),
            array('rule'=>'alphaNumeric','message'=>'Solo se permiten letras y números.','allowEmpty'=>false),
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'mz_pred'=>array(
            array('rule'=>array('between',4,4),'message'=>'Deben ser 4 caracteres alfanuméricos.'),
            array('rule'=>'alphaNumeric','message'=>'Solo se permiten letras y números.','allowEmpty'=>false),
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        ),
        'parc_pred'=>array(
            array('rule'=>array('between',5,5),'message'=>'Deben ser 5 caracteres alfanuméricos.'),
            array('rule'=>'alphaNumeric','message'=>'Solo se permiten letras y números.','allowEmpty'=>false),
            array('rule'=>'notEmpty','message'=>'Debe completar este dato.','required'=>true)
        )
    );

    //The Associations below have been created with all possible keys, those that are not needed can be removed
    var $belongsTo = array(
        'Productor' => array(
            'className' => 'Productor',
            'foreignKey' => 'productor_id'
        ),
        'Localidad' => array(
            'className' => 'Localidad',
            'foreignKey' => 'localidad_id'
        ),
        'Tenenciatipo' => array(
            'className' => 'Tenenciatipo',
            'foreignKey' => 'tenenciatipo_id'
        )
    );

    var $hasMany = array(
        'Acoproduccion' => array(
            'className' => 'Acoproduccion',
            'foreignKey' => 'predio_id',
            'dependent' => false
        )
    );

    public function beforeSave(){
        if(!empty($this->data['Predio'])){
            foreach($this->data['Predio'] as $campo=>$valor){
                $this->data['Predio'][$campo]=strtoupper($valor);
            }
        }
        return true;
    }
}
?>